package cn.bdqn.converter;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

import com.opensymphony.xwork2.conversion.TypeConversionException;

public class DataConverter extends StrutsTypeConverter{

	private final DateFormat[] dfs={
			new SimpleDateFormat("yyyy年MM月dd日"),
			new SimpleDateFormat("yyyy-MM-dd"),
			new SimpleDateFormat("MM/dd/yy"),
			new SimpleDateFormat("yyyy.MM.dd"),
			new SimpleDateFormat("yyyyMMdd"),
			new SimpleDateFormat("yyyy/MM/dd")
			
	};
	
	/**
	 * 将指定格式字符串转换为日期格式
	 */
	@Override
	public Object convertFromString(Map context, String[] values, Class toType) {
		//获取日期的字符串
		String dateStr = values[0];
		//遍历日起支持格式 ，进行转换
		for (DateFormat df : dfs) {
			try {
				return df.parse(dateStr);
			} catch (Exception e) {
				continue;
			}
		}
		throw new TypeConversionException();//异常处理实现消息输出
	}

	/**
	 * 将日期转换为指定格式字符串
	 */
	@Override
	public String convertToString(Map context, Object object) {
		Date date = (Date)object;
		//输出的格式是yyyy-MM-dd
		
		return new SimpleDateFormat("yyyy-MM-dd").format(date);
	}

}
